package com.info.zhiduoduo.repository.entity.crowdsource;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 智众包自然人开票信息
 * </p>
 *
 * @author cuichenglong
 * @since 2020-08-24
 */
@Data
@Accessors(chain = true)
@TableName("zdd_crowdsource_invoice")
public class CrowdsourceInvoice extends Model<CrowdsourceInvoice> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 智众包项目id
     */
    private Integer projectid;
    /**
     * 项目类型: 2:普通智众包项目 6:委托接单的智众包项目 参考 ProjectType枚举类
     */
    @TableField("project_type")
    private Integer projectType;
    /**
     * 项目名称
     */
    @TableField("project_name")
    private String projectName;
    /**
     * 开票方id
     */
    private Integer crowdsourceid;
    /**
     * 开票方用户身份 1:自然人 2:创客
     */
    @TableField("user_type")
    private Integer userType;

    /**
     * 开票方真实姓名
     */
    @TableField("real_name")
    private String realName;
    /**
     * 智众包项目item id
     */
    private Integer projectItemId;
    /**
     * 项目金额
     */
    @TableField("project_amount")
    private BigDecimal projectAmount;
    /**
     * 发单企业id
     */
    private Integer compid;
    /**
     * 发单企业名称
     */
    private String compname;
    /**
     * 开票状态（1：待开票，2：开票中，3：已开票,4:已作废）
     */
    private Integer state;
    /**
     * 推送的合同编号
     */
    @TableField("contract_number")
    private String contractNumber;

    /**
     * 推送的合同流水号
     */
    @TableField("contract_serial_number")
    private String contractSerialNumber;

    /**
     * 推送的结算编号
     */
    private String platstr;
    /**
     * 推送状态（1：推送发包方信息，2：推送项目信息，3：推送合同信息，4：推送结算）
     */
    private Integer status;
    /**
     * 失败原因
     */
    @TableField("fail_reason")
    private String failReason;

    /**
     * 作废理由
     */
    @TableField("invalidation_reasons")
    private String invalidationReasons;

    /**
     * 创建时间
     */
    private Date createtime;

    /**
     * 操作人
     */
    private Integer operator;

    /**
     * 更新时间
     */
    private Date updatetime;

    /**
     * 推送共青城返回的项目编号
     */
    @TableField("project_bidno")
    private String projectBidno;


    /**
     * 推送共青城返回的项目流水号
     */
    @TableField("project_serial_number")
    private String projectSerialNumber ;

    /**
     * 共青城开票内容
     */
    @TableField("gong_qing_invoice_content")
    private String gongQingInvoiceContent;

    @TableField("economic_first")
    private String economicFirst;

    @TableField("economic_second")
    private String economicSecond;

    /**
     * 发票类型  1增值税票普通发票 2增值税专用发票
     */
    @TableField("invoice_type")
    private String invoiceType;

    /**
     * 开票内容
     */
    @TableField("invoice_content")
    private String invoiceContent;

    /**
     * 开票时推送的合同存放路径
     */
    @TableField("contract_path")
    private String contractPath;


    /**
     * 申请开票时选择的甲方企业id
     */
    @TableField("party_id")
    private Integer partyId;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 成本发票完成开票时客服输入的 发票编号
     */
    @TableField("invoice_number")
    private String invoiceNumber;

    /**
     * 成本发票完成开票时客服上传的发票图片路径
     */
    @TableField("invoice_picture")
    private String invoicePicture;

    /**
     * 个体户开票推送项目时 生成的发包方和企业的合同存放路径
     */
    @TableField("business_contract_path")
    private String businessContractPath;

    /**
     * 委托运营方(成本发票使用 申请开票时客服输入)
     */
    @TableField("entrusted_operator")
    private String entrustedOperator;

    /**
     * 开票地id(成本发票使用 申请开票时客服选择)
     */
    @TableField("invoice_city_id")
    private Integer invoiceCityId;

    /**
     * 项目服务名称(成本发票使用 申请开票时客服输入)
     */
    @TableField("project_service_name")
    private String projectServiceName;

    /**
     * 项电子回单存放路径(完成共青城开票时上传)
     */
    @TableField("electronic_receipt")
    private String electronicReceipt;

    /**
     * 是否是策略性开票 0:否 1:是
     */
    private int strategy;
    /**
     * 策略性开票日期
     */
    @TableField("strategy_date")
    private Date strategyDate;
    /**
     * 策略性开票备注
     */
    @TableField("strategy_remark")
    private String strategyRemark;

    /**
     * 是否为合并后的发票（默认0 否   1 是）
     */
    @TableField("whether_merge")
    private Integer whetherMerge;

    /**
     * 被合并后关联的id(默认为0)
     */
    @TableField("merge_id")
    private Integer mergeId;

    /**
     * 开票类型 默认 0 单条正常开票 1 合并开票  2批量单条开票
     */
    private Integer type;

    /**
     * 合并开票时 填的备注
     */
    @TableField("merge_remarks")
    private String mergeRemarks;

    /**
     * 附件信息
     */
    @TableField("enclosure_info")
    private String enclosureInfo;

    /**
     * 附件生成时间
     */
    private Date generatetime;

    /**
     * 标识：1.门征，2.临登，3.集中代开
     */
    @TableField("invoice_flag")
    private Integer invoiceFlag;

    /**
     * 补录时间
     */
    @TableField("supplement_time")
    private Date supplementTime;

    /**
     * 是否是补录：0：不是，1.是
     */
    @TableField("whether_supplement")
    private Integer whetherSupplement;

    /**
     * 补录人员ID
     */
    @TableField("supplement_personnel")
    private Integer supplementPersonnel;

   /**
    *传给共青城的开票日期
    *
    **/
    @TableField("billing_date")
    private Date billingDate;

    /**
     * 开票完成时间
     */
    @TableField("finishtime")
    private Date finishtime;

    /**
     * 申请开票备注
     */
    @TableField("apply_for_billing_remarks")
    private String applyForBillingRemarks;

    @ApiModelProperty("支付方式id(表zdd_payment)")
    @TableField("pay_id")
    private Integer payId;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
